#ifndef OA_STDAFX_H
#define OA_STDAFX_H

#include "util/platform.h"
#include "util/types.h"

//STD
#include <cassert>
#include <chrono>
#include <condition_variable>
#include <ctime>
#include <cmath>
#include <exception>
#include <fstream>
#include <functional>
#include <future>
#include <iostream>
#include <iterator>
#include <limits>
#include <locale>
#include <map>
#include <memory>
#include <mutex>
#include <ostream>
#include <queue>
#include <sstream>
#include <string>
#include <thread>
#include <type_traits>
#include <utility>
#include <vector>

//BOOST
#include <boost/algorithm/string.hpp>
#include <boost/circular_buffer.hpp>
#include <boost/cstdint.hpp>
#include <boost/noncopyable.hpp>

#pragma warning(push)
#pragma warning(disable: 4512)
#include <boost/program_options.hpp>
#pragma warning(pop)

//OPENGL
#include <GL/glew.h>
#include <GL/glfw.h>

//GLM
#pragma warning(push)
#pragma warning(disable: 4996 4201)
#include <glm/glm.hpp>
#include <glm/ext.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/transform2.hpp>
#pragma warning(pop)

#endif